package org.example.springcloud.controller;

import org.example.springcloud.pojo.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import java.util.List;

/**
 * @author zfj
 * @date 2022/2/17 -13:11
 */
@RestController
public class DeptConsumerController {

	// 理解，消费者不应该有service层
	// RestTemplate 供我们直接调用，注册到spring中
	@Autowired
	private RestTemplate restTemplate;// 提供多种便捷访问远程http服务的方法，简单的restfull服务模板

	// ribbon 我们这里的地址，应该是一个变量，通过服务名来访问
	private static final String REST_URL_PREFIX = "http://SPRINGCLOUD-PROVIDER-DEPT";
	//private static final String REST_URL_PREFIX = "http://localhost:8001";

	@RequestMapping("/consumer/add")
	public boolean add(Dept dept){
		return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
	}
	@RequestMapping("/consumer/get/{id}")
	public Dept get(@PathVariable("id") Long id){
		return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id,Dept.class);
	}
	@RequestMapping("/consumer/list")
	public List<Dept> querAll(){
		return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list",List.class);
	}
}
